/*
 * VistaCables.h
 *
 *  Created on: 25/11/2009
 *      Author: luis
 */

#ifndef VISTACABLES_H_
#define VISTACABLES_H_

#include "../Modelo/Cable.h"
#include "../Modelo/PuntoQuiebre.h"
#include <gtkmm.h>
#include <cairomm-1.0/cairomm/cairomm.h>
#include "../Constantes.h"
#include "../Modelo/Circuito.h"

class VistaCables {
private:
	//std::list<Cable*> lista_cables;
	Circuito* circuito;
public:
	VistaCables(Circuito* circuito);

	//Pinta la linea representando el cable entre los puntos pasados por parametro
	void pintar_cable(int xo, int yo, int x, int y, Gtk::DrawingArea* area);


	void repintar_cable_actual(Cable* cable, Gtk::DrawingArea* area);

	/*
	 * Devuelve un cable si hay alguno en la posicion x, y, sino NULL
	 * Y en los punteros inicio_x e inicio_y devuelve la posicion de inicio del cable
	 */
	Cable* get_cable(float x, float y, int *inicio_x, int *final_y);

	/*
	 * Pinta el estado actual de los cables en el contexto dado
	 */
	void pintar_cable_en_contexto(Cairo::RefPtr<Cairo::Context> cr);

	virtual ~VistaCables();
};

#endif /* VISTACABLES_H_ */
